前兩篇講到了Java的存取修飾子,存取修飾子就是用來達成「封裝」這件事的,封裝的目的是利用控制類別內部成員(如變數和方法)的存取範圍,並透過public的方法(例如 getter 和 setter)來控制對內部屬性的訪問和修改。
封裝的好處如下:
下面例子,展示如何應用封裝:
public class Student {
// 私有屬性,只能透過getter和setter來訪問
private String name;
private int age;
// 建構式
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// Getter 方法
public String getName() {
return name;
}
// Setter 方法
public void setName(String name) {
this.name = name;
}
// Getter 方法
public int getAge() {
return age;
}
// Setter 方法
public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
// 顯示學生資訊的方法
public void displayInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
student.setAge(-5); // 透過 setter 可以避免不合規範的數據寫入
封裝(Encapsulation)是物件導向程式設計(OOP)的重要概念,目的是通過控制類別內部成員(如變數和方法)的存取範圍,來保護物件的狀態不被外界隨意改動。這是透過不同的修飾元(如 public
、private
、protected
等)來實現的。
進行封裝的主要目的統整如下:
1.隱藏類別內部的實作細節,避免外部直接修改物件的狀態,確保數據一致性。
2.通過提供受控的存取方式(如 getter 和 setter 方法),允許外部以受限的方式訪問和修改成員變數。
3.提高類別的可維護性和可擴展性,讓類別內部的實作可以隨時變動而不影響外部使用。